package com.test;

import java.awt.Color;
import java.awt.Frame;
import java.awt.HeadlessException;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JLabel;

/**
 * @author mrchen
 *	命令:
 * 		定时关机: mac> sudo shutdown -h +分钟数 
 * 					  例:sudo shutdown -h +10 十分钟以后关机
 * 
 * 					  sudo shutdown -h 具体时间 
 * 					  例:sudo shutdown -h 20:00 晚上8点关机
 * 						 sudo shutdown -h 1808181800 2018年8月18日18点关机
 * 
 * 			windows> shutdown -s(关机) -t(延迟秒) -f(强制,关闭所有未关闭的应用不提示) 
 * 					 例: shutdown -s -t 3600 3600秒后关机
 * 
 * 					 at 时间点 shutdown -s
 * 				 	 例：at 18:00 shutdown -s 下午6点关机
 * 
 * 		立即关机：mac> sudo shutdown -h now 或 sudo halt
 * 			 windows> shutdown -s -t 00 
 * 
 * 		立即重启：mac> sudo shutdown -r now 或 sudo reboot
 * 
 * 		取消shutdown命令: mac> sudo killall shutdown
 * 						 windows> shutdown -a
 * 
 * 以上mac命令将-h换成-r改成重启命令,换成-s改成休眠命令
 * 以上Windows命令把-s换成-r改成重启命令,换成-l命令-l改成注销命令
 * 
 */
@SuppressWarnings("serial")
public class GUIRuntime extends Frame {
	private int mainWindowW = 400;
	private int mainWindowH = 800;
	private String systemName = System.getProperties().getProperty("os.name");
	
	public GUIRuntime() {
		super();
		init();
	}

	public GUIRuntime(String title) {
		super(title);
		init();
	}
	
	private void init() {
		this.setSize(mainWindowW, mainWindowH);
		this.setLocation(500, 200);
		this.setVisible(true);
		
		// 添加子控件
		addViews();
		
		// 添加事件
		addEvent();
	}
	
	// 添加子试图
	private void addViews() {
		// 当前系统类型
		Label systemLabel = new Label();
		systemLabel.setSize(mainWindowW,20);
		systemLabel.setLocation(0, 25);
		systemLabel.setText('\t' + "当前系统: " + systemName);
		this.add(systemLabel);
		
		Panel panel = new MyPanel();
		panel.setLocation(10, 80);
		this.add(panel);
		
		// 输入框
		for(int i = 0; i < 5; i++) {
//			Panel panel = new MyPanel();
//			panel.setLocation(panel.getX(), systemLabel.getY() + systemLabel.getHeight() + 10 + (panel.getHeight() + 20) * i);
//			this.add(panel);
		}
		
		
	}
	
	// 添加
	
	// 添加事件
	private void addEvent() {
		// 关闭主窗口
		this.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
	
	public static void main(String[] args) {
		new GUIRuntime("工具");
	}
	
	class MyPanel extends Panel {
		public MyPanel() {
			init();
			createViews();
		}
		
		// 初始化
		public void init() {
			this.setBackground(Color.WHITE);
			this.setSize(mainWindowW - 20,40);
			this.setLocation(10, 0);
		}
		
		// 添加子控件
		public void createViews() {
			Label label = new Label();
			label.setText("显示文字");
			this.add(label);
		}
	}
}

